package org.hfy.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.hfy.dto.SupplierQueryDTO;
import org.hfy.entity.Supplier;

import java.util.List;

/**
 * 供应商Service接口
 * 
 * @author hfy
 * @version 1.0
 */
public interface SupplierService extends IService<Supplier> {

    /**
     * 分页查询供应商列表
     * 
     * @param queryDTO 查询条件
     * @return 分页结果
     */
    IPage<Supplier> getSupplierPage(SupplierQueryDTO queryDTO);

    /**
     * 根据ID获取供应商详情
     * 
     * @param id 供应商ID
     * @return 供应商信息
     */
    Supplier getSupplierById(Long id);

    /**
     * 新增供应商
     * 
     * @param supplier 供应商信息
     * @return 是否成功
     */
    boolean addSupplier(Supplier supplier);

    /**
     * 更新供应商
     * 
     * @param supplier 供应商信息
     * @return 是否成功
     */
    boolean updateSupplier(Supplier supplier);

    /**
     * 删除供应商
     * 
     * @param id 供应商ID
     * @return 是否成功
     */
    boolean deleteSupplier(Long id);

    /**
     * 检查供应商代码是否存在
     * 
     * @param supplierCode 供应商代码
     * @param excludeId 排除的ID（更新时使用）
     * @return 是否存在
     */
    boolean checkSupplierCodeExists(String supplierCode, Long excludeId);
    
    /**
     * 获取所有供应商列表（不分页）
     * 
     * @return 所有供应商列表
     */
    List<Supplier> getAllSuppliers();
} 